package com.gidgabs.modules.api.service;

import com.gidgabs.common.utils.ReturnJson;
import com.gidgabs.dto.TbOrderDataDto;
import com.gidgabs.dto.TbOrderDto;
import com.gidgabs.modules.entity.TbOrderEntity;
import com.gidgabs.modules.entity.TbUser;

import java.util.List;
import java.util.Map;

/**
 * 产品订单表
 * 
 * @author lanyonglin
 * @email www.baidu.com
 * @date 2018-07-02 10:07:40
 */
public interface TbOrderService {
	
	TbOrderEntity queryObject(Integer id);
	
	List<TbOrderEntity> queryList(Map<String, Object> map);
	
	int queryTotal(Map<String, Object> map);

	/**
	 * 下单
	 * @param tbUser
	 * @param shoppingCarIds
	 */
	ReturnJson<TbOrderDataDto> save(TbUser tbUser, Integer[] shoppingCarIds);
	
	void update(TbOrderEntity order);
	
	void delete(Integer id);
	
	void deleteBatch(Integer[] ids);

    /**
     * 根据子订单id查询 订单以及订单详细
     * @param orderId
     * @return
     */
    ReturnJson<TbOrderDto> selectOrderById(Integer orderId);

	/**
	 * 订单支付
	 * @param orderCode 订单编号
	 * @param messages 留言 数组
	 * @param money 价格
	 * @param addressId 收货地址id
	 * @return
	 */
	ReturnJson<String>  payOrder(String orderCode,String [] messages,Integer money,int addressId);

	/**
	 * 查询订单列表
	 * @param tbOrderEntity
	 * @return
	 */
	List<TbOrderEntity> selectOrderListByObj(TbOrderEntity tbOrderEntity);

}
